<?php

declare(strict_types=1);

namespace App\AdminApi\Module\Admin\Service;

use App\AdminApi\Module\System\Traits\ConfigureTraits;
use Zms\AdminElementPlus\FormCreate\FormItem;
use Zms\Validate\Type;

class AdministerService
{
    use ConfigureTraits;

    /**
     * 系统配置表单
     * @param $configure
     * @return array
     */
    public function getAdminFormRule($configure): array
    {
        return [
            FormItem::Input('title', '后台名称', $configure['title'] ?? '')->placeholder('系统名称')->maxlength(10)->required('请设置系统名称'),
            FormItem::ImageInput('login_bg', '登录背景图', $configure['login_bg'] ?? '')->clearable(true)->hint('不设置则显示默认背景图'),
            FormItem::ImageListInput('login_ad', '登录展示图', $configure['login_ad'] ?? [])->clearable(true)->hint('不设置则显示默认展示图'),
            FormItem::Number('login_err', '密码错误锁定', (int)($configure['login_err'] ?? 5))->required('请输入密码错误次数锁定账号')->info('密码错误多少次锁定账号，输入为0时则视为默认错误5次锁定'),
            FormItem::Number('login_lock', '账号锁定时间', (int)($configure['login_lock'] ?? 15))->required('请输入账号锁定时间')->info('多次密码错误后账号锁定时间,单位分钟,，输入为0时则视为默认锁定15分钟'),
            FormItem::Number('idle_exit', '空闲退出登录', (int)($configure['idle_exit'] ?? 15))->required('请输入恐袭案退出系统时间')->info('多久不操作则退出登录,单位分钟,输入为0时则视为不自动退出')
        ];
    }


    /**
     * @return array 系统配置表单验证
     */
    public function getAdminValidateRule(): array
    {
        return [
            'rule' => [
                ['title', Type::REQUIRED],
                ['title', Type::STRING, 'min' => 2, 'max' => 10],

                [['login_bg'], Type::STRING],
                [['login_ad'], Type::LIST],

                [['login_err', 'login_lock', 'idle_exit'], Type::REQUIRED],
                [['login_err', 'login_lock', 'idle_exit'], Type::INT, 'min' => 1, 'max' => 300],
            ],
            'label' => [
                'title' => '后台名称',
                'login_bg' => '登录背景图',
                'login_ad' => '登录展示图',
                'login_err' => '密码错误锁定次数',
                'login_lock' => '账号锁定时间',
                'idle_exit' => '空闲退出登录'
            ]
        ];
    }
}